﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace OWLServer.owl.tipos
{
    /// <summary>
    /// Clase que define un espacio de nombres en una ontología.
    /// </summary>
    public class EspacioNombres : IEquatable<EspacioNombres>
    {
        private int idBBDD;
        private string nombre;
        private string uri;

        /// <summary>
        /// Id con el que se almacena en la Base de Datos
        /// </summary>
        public virtual int IdBBDD
        {
            get { return idBBDD; }
            set { idBBDD = value; }
        }

        /// <summary>
        /// Nombre del espacio de nombres
        /// </summary>
        public virtual string Nombre
        {
            get { return nombre; }
            set { nombre = value; }
        }

        /// <summary>
        /// Uri a la que apunta el espacio de nombres
        /// </summary>
        public virtual string Uri
        {
            get { return uri; }
            set { uri = value; }
        }

        public EspacioNombres() { }

        public EspacioNombres(string nombre, string uri)
        {
            this.nombre = nombre;
            this.uri = uri;
        }

        #region Miembros de IEquatable<EspacioNombres>

        public bool Equals(EspacioNombres other)
        {
            bool igual = false;

            if (Uri == other.Uri)
            {
                igual = true;
            }

            return igual;
        }

        #endregion

        override public String ToString()
        {
            return Nombre;
        }
    }
}
